// Pick 提取的意思，在一个联合类型上获得传入的属性的类型
type Pick<T, K extends keyof T> = {
  [P in K]: T[P];
};
// <T, K extends keyof T> 约束传入的泛型参数 K 必须是keyof T的子类型，【就是传入的K属性必须是T上有的】
// T[P] 等同于对象上获取属性一样的效果，这个是获取一个饿接口类型上某一个属性的类型
// 使用场景 经常用在获取某一个对象类型或者接口类型上的某一些属性的类型
// 例如：
class People {
  constructor(public name: string, public age: number, public phone: number) {}
}
// 获取people上name,age的组成一个新的对象类型,[这是在一个类获取它的对象类型]
let xiaoming: Pick<People, 'name' | 'age'> = {name: 'xiaoming', age: 12}
// 在一个接口类型上获取某一些属性的类型
interface People1 {
  name: string;
  age: number;
  phone: number
}
let xiaowang: Pick<People1, 'name' | 'age'> = {name: 'xiaoming', age: 12}
export {}

